package com.sitech.openapi.domain.user;

import java.lang.Long;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;

@ApiModel(value = "ProdInst", description = "产品实例")
public class ProdInst implements Serializable {

    private static final long serialVersionUID = 1L;

    //记录产品实例标识的主键
    @ApiModelProperty(value = "产品实例标识")
    private Long prodInstId;

    //记录外部产品实例标识
    @ApiModelProperty(value = "外部产品实例标识")
    private String extProdInstId;

    //引用对象Product
    @ApiModelProperty(value = "产品业务编码")
    private String prodNbr;

    //记录产品名称。
    @ApiModelProperty(value = "产品名称")
    private String prodName;

    //记录功能产品实例对应的接入产品实例ID
    @ApiModelProperty(value = "接入产品实例标识")
    private Long accProdInstId;

    //记录外部接入产品实例标识
    @ApiModelProperty(value = "外部接入产品实例标识")
    private String extAccProdInstId;

    //记录产品使用类型。LOVB=PRI-C-0019
    @ApiModelProperty(value = "产品主附类型")
    private String prodUseType;

    //记录产品实例的业务号码。
    @ApiModelProperty(value = "业务号码")
    private String accNum;

    //记录产品的付费模式，LOVB=PRI-0001
    @ApiModelProperty(value = "付费模式")
    private String paymentModeCd;

    //记录产品产权客户的标识。
    @ApiModelProperty(value = "产权客户标识")
    private Long ownerCustId;

    //记录外部产权客户标识
    @ApiModelProperty(value = "外部产权客户标识")
    private Long extOwnerCustId;

    //记录产品鉴权的密码。
    @ApiModelProperty(value = "产品实例密码")
    private String prodInstPwd;

    //地域中的公共管理区域标识
    @ApiModelProperty(value = "区域标识")
    private Long regionId;

    //记录本地网标识，数据来源于公共管理区域。
    @ApiModelProperty(value = "本地网标识")
    private Long lanId;

    //记录后端首次发起激活的请求的接口时间。(仅首次更新，通常用于套卡激活或准实时预付费的产品)
    @ApiModelProperty(value = "激活时间")
    private String actDate;

    //记录起租时间。(由客户或协议决定发起的时间。)
    @ApiModelProperty(value = "起租时间")
    private String beginRentDate;

    //记录停租时间。(由客户或协议决定发起的时间。)
    @ApiModelProperty(value = "停租时间")
    private String stopRentDate;

    //参考主数据
    @ApiModelProperty(value = "产品实例状态")
    private String prodInstStatus;

    //PRI-0002	产品实例状态
    @ApiModelProperty(value = "首次竣工时间")
    private String firstFinishDate;

    //记录首次订单竣工时间。（仅记录产品首次开通的时间，优先以开通返回的竣工时间为准。）
    @ApiModelProperty(value = "使用客户标识")
    private Long useCustId;

    //记录产品使用客户的标识。引用外部资源Customer
    @ApiModelProperty(value = "外部使用客户标识")
    private String extUseCustId;

    //记录外部使用客户标识。引用外部资源Customer
    @ApiModelProperty(value = "责任人标识")
    private Long respCustId;

    //记录责任人标识。引用外部资源Customer
    @ApiModelProperty(value = "外部责任人标识")
    private String extRespCustId;

    //记录外部责任人标识。引用外部资源Customer
    @ApiModelProperty(value = "备注")
    private String remark;

    //记录备注信息。
    @ApiModelProperty(value = "产品实例属性")
    private List<ProdInstAttr> prodInstAttrs;

    //引用一组资源ProdInstAttr
    @ApiModelProperty(value = "帐务定制关系")
    private List<ProdInstAcctRel> prodInstAcctRels;

    //引用一组子资源ProdInstAcctRel
    @ApiModelProperty(value = "产品实例营销资源实例关系")
    private List<GprodResInstRel> gprodResInstRels;

    //引用一组资源
    @ApiModelProperty(value = "停机类型")
    private String stopType;

    public Long getProdInstId() {
        return prodInstId;
    }

    public void setProdInstId(Long prodInstId) {
        this.prodInstId = prodInstId;
    }

    public String getExtProdInstId() {
        return extProdInstId;
    }

    public void setExtProdInstId(String extProdInstId) {
        this.extProdInstId = extProdInstId;
    }

    public String getProdNbr() {
        return prodNbr;
    }

    public void setProdNbr(String prodNbr) {
        this.prodNbr = prodNbr;
    }

    public String getProdName() {
        return prodName;
    }

    public void setProdName(String prodName) {
        this.prodName = prodName;
    }

    public Long getAccProdInstId() {
        return accProdInstId;
    }

    public void setAccProdInstId(Long accProdInstId) {
        this.accProdInstId = accProdInstId;
    }

    public String getExtAccProdInstId() {
        return extAccProdInstId;
    }

    public void setExtAccProdInstId(String extAccProdInstId) {
        this.extAccProdInstId = extAccProdInstId;
    }

    public String getProdUseType() {
        return prodUseType;
    }

    public void setProdUseType(String prodUseType) {
        this.prodUseType = prodUseType;
    }

    public String getAccNum() {
        return accNum;
    }

    public void setAccNum(String accNum) {
        this.accNum = accNum;
    }

    public String getPaymentModeCd() {
        return paymentModeCd;
    }

    public void setPaymentModeCd(String paymentModeCd) {
        this.paymentModeCd = paymentModeCd;
    }

    public Long getOwnerCustId() {
        return ownerCustId;
    }

    public void setOwnerCustId(Long ownerCustId) {
        this.ownerCustId = ownerCustId;
    }

    public Long getExtOwnerCustId() {
        return extOwnerCustId;
    }

    public void setExtOwnerCustId(Long extOwnerCustId) {
        this.extOwnerCustId = extOwnerCustId;
    }

    public String getProdInstPwd() {
        return prodInstPwd;
    }

    public void setProdInstPwd(String prodInstPwd) {
        this.prodInstPwd = prodInstPwd;
    }

    public Long getRegionId() {
        return regionId;
    }

    public void setRegionId(Long regionId) {
        this.regionId = regionId;
    }

    public Long getLanId() {
        return lanId;
    }

    public void setLanId(Long lanId) {
        this.lanId = lanId;
    }

    public String getActDate() {
        return actDate;
    }

    public void setActDate(String actDate) {
        this.actDate = actDate;
    }

    public String getBeginRentDate() {
        return beginRentDate;
    }

    public void setBeginRentDate(String beginRentDate) {
        this.beginRentDate = beginRentDate;
    }

    public String getStopRentDate() {
        return stopRentDate;
    }

    public void setStopRentDate(String stopRentDate) {
        this.stopRentDate = stopRentDate;
    }

    public String getProdInstStatus() {
        return prodInstStatus;
    }

    public void setProdInstStatus(String prodInstStatus) {
        this.prodInstStatus = prodInstStatus;
    }

    public String getFirstFinishDate() {
        return firstFinishDate;
    }

    public void setFirstFinishDate(String firstFinishDate) {
        this.firstFinishDate = firstFinishDate;
    }

    public Long getUseCustId() {
        return useCustId;
    }

    public void setUseCustId(Long useCustId) {
        this.useCustId = useCustId;
    }

    public String getExtUseCustId() {
        return extUseCustId;
    }

    public void setExtUseCustId(String extUseCustId) {
        this.extUseCustId = extUseCustId;
    }

    public Long getRespCustId() {
        return respCustId;
    }

    public void setRespCustId(Long respCustId) {
        this.respCustId = respCustId;
    }

    public String getExtRespCustId() {
        return extRespCustId;
    }

    public void setExtRespCustId(String extRespCustId) {
        this.extRespCustId = extRespCustId;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<ProdInstAttr> getProdInstAttrs() {
        return prodInstAttrs;
    }

    public void setProdInstAttrs(List<ProdInstAttr> prodInstAttrs) {
        this.prodInstAttrs = prodInstAttrs;
    }

    public List<ProdInstAcctRel> getProdInstAcctRels() {
        return prodInstAcctRels;
    }

    public void setProdInstAcctRels(List<ProdInstAcctRel> prodInstAcctRels) {
        this.prodInstAcctRels = prodInstAcctRels;
    }

    public List<GprodResInstRel> getGprodResInstRels() {
        return gprodResInstRels;
    }

    public void setGprodResInstRels(List<GprodResInstRel> gprodResInstRels) {
        this.gprodResInstRels = gprodResInstRels;
    }

    public String getStopType() {
        return stopType;
    }

    public void setStopType(String stopType) {
        this.stopType = stopType;
    }

    @Override
    public String toString() {
        return "ProdInst{" +
                "prodInstId=" + prodInstId +
                ", extProdInstId='" + extProdInstId + '\'' +
                ", prodNbr='" + prodNbr + '\'' +
                ", prodName='" + prodName + '\'' +
                ", accProdInstId=" + accProdInstId +
                ", extAccProdInstId='" + extAccProdInstId + '\'' +
                ", prodUseType='" + prodUseType + '\'' +
                ", accNum='" + accNum + '\'' +
                ", paymentModeCd='" + paymentModeCd + '\'' +
                ", ownerCustId=" + ownerCustId +
                ", extOwnerCustId=" + extOwnerCustId +
                ", prodInstPwd='" + prodInstPwd + '\'' +
                ", regionId=" + regionId +
                ", lanId=" + lanId +
                ", actDate='" + actDate + '\'' +
                ", beginRentDate='" + beginRentDate + '\'' +
                ", stopRentDate='" + stopRentDate + '\'' +
                ", prodInstStatus='" + prodInstStatus + '\'' +
                ", firstFinishDate='" + firstFinishDate + '\'' +
                ", useCustId=" + useCustId +
                ", extUseCustId='" + extUseCustId + '\'' +
                ", respCustId=" + respCustId +
                ", extRespCustId='" + extRespCustId + '\'' +
                ", remark='" + remark + '\'' +
                ", prodInstAttrs=" + prodInstAttrs +
                ", prodInstAcctRels=" + prodInstAcctRels +
                ", gprodResInstRels=" + gprodResInstRels +
                ", stopType='" + stopType + '\'' +
                '}';
    }
}
